<template>
  <label class="formItem">
    <span class="name">{{ this.fieldName }}</span>
    <input type="text" :value="value" @input="onValueChanged($event.target.value)" :placeholder="this.placeholder">
  </label>
</template>

<script lang="ts">
import Vue from "vue";
import {Component, Prop, Watch} from "vue-property-decorator";

@Component
export default class FormItem extends Vue {
  @Prop({default:''}) value! :string;
  @Prop({required:true})fieldName!:string
  @Prop()placeholder?:string
  @Watch('value')
  onValueChanged(value:string){
    this.$emit('update:value',value)
  }
}
</script>

<style lang="scss" scoped>
@import "~@/assets/style/helper.scss";

.formItem {
  display: flex;
  font-size: 14px;
  padding-left: 16px;
  align-items: center;

  .name {
    padding-right: 16px;
  }

  input {
    height: 40px;
    padding: 16px 0;
    flex-grow: 1;
    background: transparent;
    border: none;
  }
}

</style>